Những sự khác biệt so với GPL LGPL

Sự khác biệt chính giữa GPL và LGPL là LGPL cho phép sản phẩm được kết nối với một (trong trường hợp là một thư viện, 'được sử dụng bởi') một chương trình non-(L)GPLed, bất kể đó là một phần mềm miễn phí hay phần mềm có bản quyền.[1] Phần mềm non-(L)GPLed có thể được phân phối dưới bất kỳ điều khoản sử dụng nào nếu nó không phải là phần mềm thứ cấp. Nếu nó là phần mềm thứ cấp, thì điều khoản của chương trình phải cho phép "sửa đổi vì mục đích sử dụng của khách hàng và kỹ thuật dịch ngược để sửa lỗi những sửa đổi này." Một phần mềm sử dụng một chương trình LGPL là một phần mềm thứ cấp hay không là mang tính chất pháp lý. Một chương trình standalone kết nối động tới một thư viện thông qua một .so, .dll, hoặc tương tự thì không được gọi là phần mềm thứ cấp (như định nghĩa bởi LGPL). Nó sẽ thuộc về danh mục một "phần mềm sử dụng thư viện". Đoạn trích sau đây là từ mục 5 của LGPL phiên bản 2.1:

Một chương trình không chứa một phần được xây dựng từ Thư viện, nhưng được thiết kế để làm việc với thư viện bằng cách dịch hoặc kết nối với nó được gọi là "phần mềm có sử dụng thư viện." Những phần mềm kiểu này không phải là phần mềm thứ cấp của Thư viện, và do vậy không thuộc phạm vi của Giấy phép này.

Tóm lại, nếu đó là "một phần mềm sử dụng thư viện" thì phần mềm phải được liên kết với một phiên bản mới của LGPL-covered program. Để làm việc này, cách thông thường nhất là sử dụng một "thư viện dùng chung để kết nối". Cách khác là một thư viện kết nối động cũng được phép nếu như cả mã nguồn hoặc các file liên kết được cung cấp.[cần dẫn nguồn]

Một đặc tính khác của LGPL là có thể dùng để chuyển bất kỳ phần mềm LGPL nào sang một phần mềm GPL. Đặc điểm này rất có lợi cho việc sử dụng trực tiếp mã nguồn LGPL trong các thư viện và phần mềm GPL, hoặc dùng để tạo ra một phiên bản mới của mã nguồn mà không thể được sử dụng trong các sản phẩm có bản quyền.